NLP

Learning to Select Knowledge for Response Generation in Dialog Systems

本文主要研究的是开放域对话系统,使用后验知识分布来指导知识选择过程,以生成包含更多有效信息的回复。

paper link

Introduction

现有的方法缺乏对知识选择和使用的研究,本文的核心在于提出了一种后验知识分布的方法来指导知识的选择过程,然后使用Concatenated和Hierarchical Gated Fusion Unit两种解码器来融合选择的知识。

Table  1:  Comparison  between  Various  Responses  Generated  with/without  Correct  Knowledge

Model

Figure  1:  Architecture  Overview

模型主要包括三个部分:句子和知识编码器,知识管理器,解码器。整体结构仍然是seq2seq+attention。

Encoder

作者使用两个独立的BiLSTM分别编码句子和知识,以最后时刻的隐层状态作为特征表达,分别得到输入句子和知识的表征向量。

Knowledge Manager

模型中的知识管理模块,最重要的作用是从所有的外部知识中,选出所需的知识。在训练过程中,已有的生成回复也作为选择知识的标准,是一种后验概率。所以在训练的过程中,X和Y都被用于训练,通过以下式子来计算每条知识被选择的概率(使用内积来衡量知识 $k_{i}$ 与输入X Y的相似度)。

而在预测时,Y是未知的,只能通过输入X来进行知识选择。具体式子如下:

训练和预测时的参考依据不同,肯定会影响整个系统的设计。因此在知识管理器中,设计了如下的损失函数KLDivLoss(KL散度),目标是让前两式不断接近,已达到训练和预测时的同步。

Decoder

与传统的Seq2Seq解码器不同,该模型将知识$k_{i}$融入到响应生成$y_{t}$中。 作者使用了两种解码器,第一个是“硬”解码 Standard GRU with Concatenated Inputs,使用标准的GRU作为解码器,第二个是具有分级门控融合单元的“软”解码器 Hierarchical Gated Fusion Unit (HGFU)

Standard GRU with Concatenated Inputs: 直接将选择的知识$k_{i}$与GRU上一步的输出$y_{t-1}$拼接

However, it forces knowledge $k_{i}$ to attend decoding, which is less flexible and is not desirable in some scenarios.

Hierarchical Gated Fusion Unit (HGFU):总共包括utterance GRU和knowledge GRU,然后使用门函数融合两个GRU的隐层状态
$$
\begin{aligned}
\mathbf{s}_{t}^{y} &=\operatorname{GRU}\left(y_{t-1}, \mathbf{s}_{t-1}, \mathbf{c}_{t}\right) \\
\mathbf{s}_{t}^{k} &=\operatorname{GRU}\left(\mathbf{k}_{i}, \mathbf{s}_{t-1}, \mathbf{c}_{t}\right) \\
\mathbf{r} &=\sigma\left(\mathbf{W}_{z}\left[\tanh \left(\mathbf{W}_{y} \mathbf{s}_{t}^{y}\right) ; \tanh \left(\mathbf{W}_{k} \mathbf{s}_{t}^{k}\right)\right]\right)\\
\mathbf{s}_{t} &=\mathbf{r} \odot \mathbf{s}_{t}^{y}+(\mathbf{1}-\mathbf{r}) \odot \mathbf{s}_{t}^{k} \\
y_{t} \sim \mathbf{p}_{t} &=\operatorname{softmax}\left(\mathbf{s}_{t}, \mathbf{c}\right)
\end{aligned}
$$

Loss Function

模型共使用了三个损失函数:

  1. KL loss
  2. NLL loss: $\mathcal{L}_{N L L}(\theta)=-\frac{1}{m} \sum_{t=1}^{m} \log p_{\theta}\left(y_{t} | y_{<t}, \mathbf{x}, \mathbf{k}_{i}\right)$,decoder端交叉熵损失函数
  3. BOW loss: $\mathcal{L}_{B O W}(\theta)=-\frac{1}{m} \sum_{t=1}^{m} \log p_{\theta}\left(y_{t} | \mathbf{k}_{i}\right), p_{\theta}\left(y_{t} | \mathbf{k}_{i}\right)=\frac{\exp \left(\mathbf{w}_{y_{t}}\right)}{\sum_{v \in V} \exp \left(\mathbf{w}_{v}\right)}$

The BOW loss (Learning Discourse-level Diversity for Neural Dialog Models using Conditional Variational Autoencoders) is designed to ensure the accuracy of the sampled knowledge $k_{i}$ by enforcing the relevancy between the knowledge and the target response.

Experiments

Table  2:  Automatic  and  Manual  Evaluation  on  Persona-chat  and  Wizard-of-Wikipedia

Conclusion

本文核心的创新点在于利用后验分布来辅助选择正确的知识,从而生成有意义的回复。

Reference